home *** CD-ROM | disk | FTP | other *** search
- Dokumentation zu dem Programm MACTEXT (C) ONKISOFT 1999
-
- Geschrieben von Gero Zahn
- Bergring 27
- 4953 Petershagen
- Tel.: 05707/2501
-
- KTO 57326548
- BLZ 49050105
- Sparkasse Minden Lübbecke
-
- Welchen Aladin-Nutzer hat die Tatsache noch nie gestört, daβ Texte, die
- mit MacWrite, Turbo-Pascal, Ragtime oder irgendeinem anderen Programm
- eingetippt worden sind, auf immer und ewig in der Hölle des
- Aladin-Formates verschwunden blieben. Des gleichen umgekehrt: Hat man
- unter MSDos in Turbo-Pascal etwas geschrieben, will man es (weil PCDitto
- ja eine lahme Ente ist) sicher unter einem schnelleren System laufen
- lassen. Was liegt da näher als Turbo-Pascal unter Aladin?
-
- Von MSDos hin zum Mac gibt's eigentlich keine Probleme: Es gibt da ein
- Programm namens "Gem To Mac", das unter Aladin läuft. Normalerweise
- ausgeworfene Gem-Disketten behält er bei sich und (vorausgesetzt, die
- Diskette ist 80 Tracks/9 Sektoren formatiert) läβt sich jedes beliebige
- File in die leers Superdisk kopieren. Von dort aus kann das gleiche
- Programm die Files weiterkonvertieren, entweder als Text-Files
- (MacWrite-Format) oder als Bilder (MacPaint-Format). Somit kein Problem.
- Wer das Programm nicht hat, hat natürlich Probleme ...
-
- Doch zurück: Man hat beispielsweise unter Ragtime einen Text geschrieben,
- sagen wir, eine Kurzgeschichte. Der Ausdruck ist ja ganz nett, doch
- andererseits wäre es schon ganz schön, das Ding unter Wordplus
- weitereditieren zu können, denn auf die Dauer hat man unter Atari-TOS doch
- mehr Möglichkeiten. Aladin ist in dieser Beziehung doch eine ziemliche
- Sackgasse. Auβerdem: Bis der Finder von Diskette hochgefahren ist, kann
- man getrost noch mal 'ne Tasse Kaffee trinken, während Wordplus nach ein
- paar Sekunden da ist. "Was tun?" sprach Zeus.
-
- Über eins sollten wir uns im Klaren sein: Die Schrift-Attribute werden den
- Weg eines vergänglichen gehen. Doch für Turbo-Pascal-Sourcetexte ist das
- ja nicht von Bedeutung. Bei Texten rollt schon die eine oder andere
- Krokodilsträne. Naja, was soll's.
- Als erstes speichern wir den Text als reines Textfile ab. MacWrite hat
- eine entsprechende Option. Exportiert man den Text unter RagTime, so hat
- man sofort ein reines Textfile, ebenso ist ein abgespeichertes Pascal-File
- schon so wie es soll. Nun steht man vor dem Problem: Wie bekomme ich
- dieses File ins Atari-Diskettenformat?
-
- Ein Programm wie "Gem To Mac" existiert meineswissens bis jetzt noch
- nicht, aber ich arbeite dran. Wer sich dafür interessiert, soll sich mal
- bei mit melden.
- Bis dahin behelfen wir uns mit einer Notlösung: Wir kopieren das File auf
- eine frisch formatierte Diskette. Mit brauchbaren Diskettenmonitoren (PD
- gibt's die Dinger ja wie Sand am Meer) kann man per Such-Option leicht den
- Anfang und das Ende des Textes finden. Bei Pascal-Programmem sucht man am
- einfachsten "PROGRAM", das ja bekanntlich ganz am Anfang steht, und
- "END.", ditto am Ende. Brauchbare Monitoren lassen einem die Möglichkeit,
- den gesamten Bereich zwischen zwei Markierungen als Diskettenfile
- abzuspeichern, gegebenenfalls auf Ramdisk. Dadurch, daβ die Diskette
- frisch formatiert war, kann man beruhigt davon ausgehen, daβ das File
- zusammenhängend auf der Diskette steht. Somit hat man nun ein sauberes
- Mac-File vor sich. Wer über keinen Monitor mit diesen speziellen
- Fähigkeiten verfügt, soll sich entweder selbst einen schreiben oder sich
- bei mir melden, ich habe da ganz brauchbare Dinger.
-
- Frisch ans Werk: Gleich eingeladen mit der erstbesten Texterarbeitung.
- Doch ins neun von zehn Fällen wird sich das als (man verzeihe mir den
- Ausdruck) der sprichwörtliche Griff in Klo herausstellen.
- Hat man mit MacWrite gearbeitet, hat man ja ein Flieβtext-File vor sich.
- Das Format ist wie folgt: Es gibt keine Zeilen-Einschnitte, nach jedem
- Absatz steht mal gerade ein "CR". Normale ST-Textverarbeitungs-Programme
- benötigen aber normalerweise nach jeder Zeile "CR/LF", und zum Beispiel
- Tempus 2.0 braucht hinter einem Absatz zusätzlich nochmal "CR". Auβerdem
- ist eine Zeile (daβ sie mit "CR" aufhört, verstehen die meisten Programme
- noch) entschieden länger als gewohnt. Bei Tempus 2.0 ist eine Zeile
- maximal 160 Zeichen lang. Ein ganzer Absatz hat aber (z. B. bei 10 Zeilen)
- schon etwa 800 Zeichen. Und was nun?
-
- Bevor wir uns mit diesem Problem beschäftigen, reden wir besser erstmal
- von einem anderen: Der Miβerfolg mit dem Textverarbeitungsprogramm hat uns
- nicht im geringsten abgeschreckt. Schauen wir uns das Mac-Textfile erstmal
- direkt vom Desktop an. Also: Doppelclick und dann "Anzeigen".
- Komischerweise zeigen sich im Text die wildesten Grafik-Zeichen und/oder
- Buchstaben, wo normalerweise Umlaute, Vokale mit Akzenten oder andere
- Zeichen stehen sollten. Das liegt an folgender bösen Falle: Der Mac
- verfügt (wie die meisten normalen Computer) über einen ASCII-Zeichensatz,
- zumindest alle Zeichen bis einschlieβlich chr(127) stimmen exakt überein.
- Was dann folgt, ist ein planloses Tohuwabohu. Ein ST und ein PC verfügen
- (ungefähr zumindest) über einen USA-Zeichensatz. Der Mac hat da seine
- eigenen Konventionen. Faktisch ist es so, daβ fast jedes USA-ASCII-Zeichen
- auch im Mac-Zeichensatz vorkommt, nur an einer anderen Stelle. Was man nun
- bräuchte, wäre zuallererst mal ein Zeichenkonverter, ein Programm also,
- das weiβ, wo im ST-Zeichensatz jedes beliebige Mac-Zeichen steht. Stellen
- wir uns vor, wir hätten ein solches Programm. De facto verrichtet MACTEXT
- diese Aufgabe ohne Anstand.
-
- Jetzt haben wir ein nettes ST-Textfile. Alle nicht implentierten Zeichen
- (wie zum Beispiel das angebissene Äpfelchen) wurden entfernt, ebenso
- automatische Trennungen, die RagTime produziert und desgleichen mehr. Was
- will der Mensch noch mehr?
- Noch immer stimmen die Zeilenende-Markierungen nicht. Daher hat MACTEXT
- des weiteren die Option, die Zeilenende-Kennungen gegen eigene
- auszutauschen. Man hat die Wahl zwischen "CR" (keine Änderung), "CR/LF"
- (Standard-Zeilenende) und "CR/CR/LF" (Tempus 2.0 Flieβtext). Wozu Punkt
- eins gut ist, weiβ ich selbst nicht so genau. Man kann's ja vielleicht mal
- brauchen. Für Pascal-Programme, die ja kein Flieβtext sind, reicht Punkt
- zwei völlig aus. Man kopiert das erhaltene File nur noch auf eine
- MSDos-Diskette und kann sofort mit Turbo-Pascal anfangen,
- herumzuexperimentieren. Ein paar kleine Änderungen in der Implementation
- sind sicher erforderlich, aber so grob isses das schon mal.
- Doch zu Flieβtext-Texten. Ich verfahre immer so: Als Zeilenende lasse ich
- mit "CR/CR/LF" einsetzen. Somit sind da, wo auch vorher welche waren, auch
- für Tempus 2.0 Absätze. Probleme gibt's nur mit den überlangen Zeilen. Es
- gibt da aber eine Möglichkeit: Ich benötige einen Tempus, der gleich beim
- Einladen eines Textes im Flieβtext-Modus steht. Tempus wird beim Einladen
- meckern, daβ ihm die Zeilen zu lang sind. Ganz logisch. Er wird fragen,
- was er mit den zu langen Zeilen machen soll: 1. Zeilenlänge anpassen.
- Dieser Punkt wird durchgestrichen sein, weil die Zeilenlänge sicher länger
- als die maximale ist; 2. Abbruch. Das können wir uns schenken - Dazu haben
- wir Tempus nicht gestartet; 3. Zeilen abschneiden. Das können wir uns auch
- sparen. Von jedem Absatz hätten wir nur die erste Zeile. Das ist also
- vollkommener Quatsch; 4. Zeilen abknicken. Das isses! Der Rest des
- Absatzes wird in die nächste Zeile gesteckt. Paβt das auch nicht, geht der
- Rest wieder in die nächste Zeile, und so weiter. Somit haben wir immerhin
- schon mal den gesamten Text im Speicher, wenn auch mit etwas merkwürdigen
- Trennungen an den Zeilenenden.
- Nun kommt wieder einmal ein kleiner Trick mit einem groβen Effekt: Wenn
- wir nun die angestrebte Zeilenlänge einstellen und den Menüpunkt "Text
- reformatieren aufrufen, werden die auseinandergeschnittenen Wörter wieder
- zusammengeklebt. Wieso das? Nun, es ist so, daβ Tempus (immer wenn er eine
- neue Zeile beginnt) das letzte Leerzeichen der letzten Zeile auch dort
- stehen läβt, als Wortende-Kennung eben. Daran erkennt er, daβ hier eine
- neue Zeile beginnt, wenn auch im Flieβtext. Beim "Zeilen abknicken" gab es
- keine Leerzeichen am Zeilenende. Die Zeile endete mit einem Buchstaben und
- einem "CR/LF". Beim neuerlichen formatieren fügt Tempus die Wörter wieder
- zusammen ohne ein Wort des Widerspruches. Die neuen Wörter kommen korrekt
- in den Blocksatz oder ins linksbündige Format. Das Wunder ist geschehen:
- Wie haben den ehemaligen Mac-Text im Tempus-Flieβtext-Format.
-
- Doch wie ich mich kenne, kenne ich sicher auch andere Nutzer, die den Text
- gerne im Wordplus-Format hätten. Das kostet nun auch nicht mehr viel
- Arbeit: Das Wordplus-File-Format ist irgendwie recht komplex, also
- konvertieren wir den Text doch besser einfach nur in Wordplus-Blockformat.
- Dabei entfallen logischerweise das Seitenformat, das Linieal etc. etc. ...
- Wordplus benutzt als Leerzeichen-Substitute (also statt chr(32)) den
- ASCII-Code chr(30). Das ist auch der Grund, warum Wordplus-Texte bei
- direkten Anzeigen vom Desktop aus immer so komisch unleserlich sind. Ein
- direkter Grund dafür war mir nicht direkt deutlich. Feste Leerzeichen
- haben sind jedenfalls auch chr(32) ...
- Das Prinzip des Flieβtextes hat Wordplus ja auch, wenn auch nicht so schön
- wie Tempus. Die Erkennung der Absätze funktioniert aber etwas anders: Alle
- Zeilen enden mit "CR/LF". Eine Zeile, mit der nicht gleichzeitig der
- Absatz endet, hat ein Leerzeichen am Ende, bzw. ein chr(30).
- Wie ich bereits erwähnte, hat Tempus das auch, als Wortendekennung. Somit
- entspricht die Sache schon richtig gut den Konventionen. Als erstes müssem
- wir alle Leerzeichen durch Substituten ersetzen. Das ist mit der "Suchen &
- Ersetzen"-Option von Tempus eine Arbeit von einer Sekunde. Was jetzt noch
- stört, sind die überflüssigen "CR"'s am Ende der Absätze. Um die
- Wegzukriegen, schaltet man in den Quelltext-Modus und klickt den Menüpunkt
- "Zeichenredundanz" an. Dabei werden alle einzelnen "CR"'s rausgestrichen.
- Den so erhaltenen Text speichert man einfach als "nnn.BLK" ab. Mit
- Wordplus öffnet man einfach ein neues Dokument "mmm.DOC" und lädt
- "nnn.BLK" als Block ein. Durch neues formatieren des ganzen Textes wird
- der Text (in manchmal minutenlanger Arbeit) an das neue Lineal gewöhnt.
- Jetzt kann man anfangen, die verlorenen Text-Attribute mittels "Restyle"
- wieder einzubringen. Dann ist das nächste Wunder geschehen: Der Mac-Text
- ist via Direktmodus-Tempus-Hamburg-Hannover zu Wordplus gekommen. Man
- verlange jetzt nicht von mir, ihn wieder zurück zu bringen. Theoretisch
- möglich ist aber alles.
-
- MACTEXT konvertiert also "nur" die Zeichen und die Zeilen-Enden. Von daher
- ist die Bedienung auch ziemlich einfach:
- Nach einer kleinen Begrüβungs-Box erscheint eine File-Selector-Box und die
- Meldung, das Mac-Text-File anzuklicken. Danach kommt eine zweite
- File-Selector-Box, die den Namen eines ST-Textfiles verlangt. Man fährt
- immer gut mit den Endungen ".MAC" und ".TXT". Je nach vorhandensein des
- Ziel-Files wird entsprechend reagiert. Es bedarf wohl keiner weiteren
- Beschreibung.
- Nun folgt noch die Frage nach der neuen Zeilenende-Kennung: Default ist
- "CR/CR/LF" (für Flieβtxte).
- Nun folgt ein Window, in dem das prozentuale Fortschreiten des Programms
- angezeigt wird. Es ist sicher nicht das schnellste, aber es funktioniert
- immerhin.
- Die nunfolgende Frage nach einem neuerlichen Programm-Lauf erklärt sich
- sicherlich von selbst.
-
- Theoretisch war's das. Wer an dem Listing (vor allem interessant wegen der
- Konversions-Tabelle, die ich in ein durchwachten Nacht erstellt habe)
- interessiert ist, möge mir einfach schreiben. 10,- DM und eine formatierte
- und virenfreie Diskette sind dazu nötig. Updates gibt's unter den gleichen
- Bedingungen. Als Update wird wohl demnächst das komplette Paket "Mac To
- Gem" erscheinen, die Zeichen- und Zeilenende-Konversion inbegriffen, plus
- eine Routine, die das lästige Suchen nach File-Anfang und -Ende beendet.
- Das wird dann wohl auch auf vollen (also nicht unbedingt
- frisch-formatierten) Aladin-Disketten funktionieren. Also, Leute, haltet
- Euch ran!
-
- Für Bug-Reports bin ich natürlich immer offen. Ein Bug liegt übrigens bei
- folgendem Sachverhalt nicht vor: Unter Aladin gibt es ein Zeichen,
- erreichbar über ALT-".", das aussieht wie drei Punkte hintereinander. Dies
- ist das einzige Zeichen, dem MACTEXT bei der Konversion eine ganze
- Zeichenkette (nämlich "...") zuordnet. Das ist durchaus so gewollt!
-
- Für Spenden im 10,- -Bereich bin ich (also armer Schüler) natürlich auch
- immer offen ...
-
- Tja, Leute, dann bis die Tage ...
-
- Gero Zahn, Petershagen, den 3.9.1989
-
-